package com.mkx.configurations;

/**
 * 日志配置 (LogConfig)
 * 自动配置模式的具体实现之一
 * 负责日志系统相关的配置
 */
public class LogConfig implements AutoConfig {
    
    // 配置是否启用
    private boolean enabled = true;
    
    /**
     * 设置配置是否启用
     * @param enabled 是否启用配置
     */
    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }
    
    /**
     * 获取配置的优先级
     * 日志配置优先级最高，设为5
     * @return 优先级值
     */
    @Override
    public int getOrder() {
        return 5;
    }
    
    /**
     * 检查配置是否应该被应用
     * @return 如果enabled为true则返回true，否则返回false
     */
    @Override
    public boolean shouldApply() {
        return enabled;
    }
    
    /**
     * 应用日志配置
     * 设置日志级别、输出格式、日志文件等
     */
    @Override
    public void apply() {
        // 模拟日志配置的应用过程
        System.out.println("应用日志配置:");
        System.out.println("- 设置日志级别: INFO");
        System.out.println("- 配置控制台输出格式");
        System.out.println("- 配置文件输出: logs/application.log");
        System.out.println("- 启用日志滚动策略: 每日滚动，保留7天");
        System.out.println("日志配置应用完成");
    }
    
    /**
     * 获取配置的名称
     * @return 配置名称
     */
    @Override
    public String getName() {
        return "LogConfig"; 
    }
}